// -----------------------------token本地换存储(cookie)
import { getToken, setToken, removeToken } from '@/utils/auth'
// 引入登录(login)接口
import { login, getUserProfile, getUserDetailById } from '@/api/user'
import { resetRouter } from '@/router'
// import { remove } from 'js-cookie'
export default {
  // 开启命名空间
  namespaced: true,

  // 全局共享的数据
  state: {
    // -------------------------获取token(本地cookie存储)
    token: getToken() || null,
    // -------------------------用户信息
    userInfo: {}
  },

  // 唯一修改数据的地方
  mutations: {
    // token
    setToken(state, newtoken) {
      state.token = newtoken
      // -----------------------设置token(本地cookie存储)
      setToken(newtoken)
    },
    removeToken(state) {
      state.token = null
      // -----------------------删除token(本地cookie存储)
      removeToken()
    },
    // 用户信息
    setUserInfo(state, userinfo) {
      state.userInfo = userinfo
    },
    removeUserInfo(state) {
      state.userInfo = {}
    }

  },

  // 处理异步
  actions: {
    // 退出清空token和用户信息
    userLogout(context) {
      // 移除 token
      context.commit('removeToken')
      // 移除 userInfo
      context.commit('removeUserInfo')
      // 退出时重置路由
      resetRouter()
    },
    // -------------------------发送登录请求
    async userLogin(context, obj) {
      const res = await login(obj)
      context.commit('setToken', res.data)
    },
    // -------------------------发送用户信息请求
    async getUserInfo(context) {
      const res = await getUserProfile()
      console.log(res)
      const detailInfo = await getUserDetailById(res.data.userId)
      console.log(detailInfo.data)
      context.commit('setUserInfo', { ...res.data, ...detailInfo.data })
      return res.data.roles.menus
    }
  }
}

